#include <stdlib.h>
#include "od_task.h"
#include "od_sip_GB28181_2016_xml_cmd_define.h"



struct pdesc msg_status_params[5] = {
    {0, 0, 32,   PT_STRI__SX(msg_status, CmdType),  "CmdType",   NULL, 0},
    {0, 0, 32,   PT_STRI__SX(msg_status, SN),       "SN",        NULL, 0},
    {0, 0, 64,   PT_STRI__SX(msg_status, DeviceID), "DeviceID",  NULL, 0},
    {0, 0, 32,   PT_STRI__SX(msg_status, Status),   "Status",    NULL, 0},
    {0,0,0,XML_PT_NULL,"", NULL, 0}
};

struct pdesc msg_cmdtype[2] = {
    {0, 0, 32,   PT_STRI__SX(msg_CmdType, CmdType),  "CmdType",   NULL, 0},
    {0,0,0,XML_PT_NULL,"", NULL, 0}
};

struct pdesc msg_deviceinfo_rq[4] = {
    {0, 0, 32,   PT_STRI__SX(msg_DeviceInfo_rq, CmdType),  "CmdType",   NULL, 0},
    {0, 0, 32,   PT_STRI__SX(msg_DeviceInfo_rq, SN),       "SN",        NULL, 0},
    {0, 0, 64,   PT_STRI__SX(msg_DeviceInfo_rq, DeviceID), "DeviceID",  NULL, 0},
    {0,0,0,XML_PT_NULL,"", NULL, 0}
};

struct pdesc msg_deviceinfo_rp[11] = {
    {0, 0, 32,   PT_STRI__SX(msg_DeviceInfo_rp, CmdType),          "CmdType",      NULL, 0},
    {0, 0, 32,   PT_STRI__SX(msg_DeviceInfo_rp, SN),               "SN",           NULL, 0},
    {0, 0, 64,   PT_STRI__SX(msg_DeviceInfo_rp, DeviceID),         "DeviceID",     NULL, 0},
    {0, 0, 32,   PT_STRI__SX(msg_DeviceInfo_rp, DeviceName),       "DeviceName",   NULL, 0},
    {0, 0, 32,   PT_STRI__SX(msg_DeviceInfo_rp, Result),           "Result",       NULL, 0},
        
    {0, 0, 32,   PT_STRI__SX(msg_DeviceInfo_rp, Manufacturer),     "Manufacturer", NULL, 0},
    {0, 0, 64,   PT_STRI__SX(msg_DeviceInfo_rp, Model),            "Model",        NULL, 0},
    {0, 0, 32,   PT_STRI__SX(msg_DeviceInfo_rp, Firmware),         "Firmware",     NULL, 0},
    {0, 0, 1,    PT_SINT__SS(msg_DeviceInfo_rp, Channel, int32_t), "Channel",      NULL, 0},
    {0, 0, 1024, PT_STRI__SX(msg_DeviceInfo_rp, Info),             "Info",         NULL, 0},
    {0,0,0,XML_PT_NULL,"", NULL, 0}
};

/**目录查询请求*/
struct pdesc msg_catalog_rq[6] = {
    {0, 0, 32,   PT_STRI__SX(msg_Catalog_rq, CmdType),   "CmdType",   NULL, 0},
    {0, 0, 32,   PT_STRI__SX(msg_Catalog_rq, SN),        "SN",        NULL, 0},
    {0, 0, 64,   PT_STRI__SX(msg_Catalog_rq, DeviceID),  "DeviceID",  NULL, 0},
    {0, 0, 64,   PT_STRI__SX(msg_Catalog_rq, StartTime), "StartTime", NULL, 0},
    {0, 0, 64,   PT_STRI__SX(msg_Catalog_rq, EndTime),   "EndTime",   NULL, 0},
    {0,0,0,XML_PT_NULL,"", NULL, 0}
};

/**目录查询应答*/
struct pdesc msg_catalog_rp[5] = {
    {0, 0, 32,   PT_STRI__SX(msg_Catalog_rp, CmdType),         "CmdType",   NULL, 0},
    {0, 0, 32,   PT_STRI__SX(msg_Catalog_rp, SN),              "SN",        NULL, 0},
    {0, 0, 64,   PT_STRI__SX(msg_Catalog_rp, DeviceID),        "DeviceID",  NULL, 0},
    {0, 0, 1,    PT_SINT__SS(msg_Catalog_rp, SumNum, int32_t), "SumNum",    NULL, 0},
    {0,0,0,XML_PT_NULL,"", NULL, 0}
};

/**目录查询应答 item信息*/
struct pdesc msg_catalog_item[24] = {
    {0, 0, 64,   PT_STRI__SX(msg_Catalog_item, DeviceID),             "DeviceID",   NULL, 0},
    {0, 0, 64,   PT_STRI__SX(msg_Catalog_item, Name),                 "Name",        NULL, 0},
    {0, 0, 64,   PT_STRI__SX(msg_Catalog_item, Manufacturer),         "Manufacturer",  NULL, 0},
    {0, 0, 64,   PT_STRI__SX(msg_Catalog_item, Model),                "Model",    NULL, 0},
    {0, 0, 32,   PT_STRI__SX(msg_Catalog_item, Owner),                "Owner",   NULL, 0},
        
    {0, 0, 32,   PT_STRI__SX(msg_Catalog_item, CivilCode),            "CivilCode",        NULL, 0},
    {0, 0, 64,   PT_STRI__SX(msg_Catalog_item, Block),                "Block",  NULL, 0},
    {0, 0, 64,   PT_STRI__SX(msg_Catalog_item, Address),              "Address",    NULL, 0},
    {0, 0, 1,    PT_SINT__SS(msg_Catalog_item, Parental, int32_t),    "Parental",   NULL, 0},
    {0, 0, 64,   PT_STRI__SX(msg_Catalog_item, ParentID),             "ParentID",        NULL, 0},
        
    {0, 0, 1,    PT_SINT__SS(msg_Catalog_item, SafetyWay, int32_t),   "SafetyWay",  NULL, 0},
    {0, 0, 1,    PT_SINT__SS(msg_Catalog_item, RegisterWay, int32_t), "RegisterWay",    NULL, 0},
    {0, 0, 64,   PT_STRI__SX(msg_Catalog_item, CertNum),              "CertNum",    NULL, 0},
    {0, 0, 1,    PT_SINT__SS(msg_Catalog_item, Certifiable, int32_t), "Certifiable",   NULL, 0},
    {0, 0, 1,    PT_SINT__SS(msg_Catalog_item, ErrCode, int32_t),     "ErrCode",        NULL, 0},
        
    {0, 0, 64,   PT_STRI__SX(msg_Catalog_item, EndTime),              "EndTime",  NULL, 0},
    {0, 0, 1,    PT_SINT__SS(msg_Catalog_item, Secrecy, int32_t),     "Secrecy",    NULL, 0},
    {0, 0, 64,   PT_STRI__SX(msg_Catalog_item, IPAddress),            "IPAddress",   NULL, 0},
    {0, 0, 1,    PT_SINT__SS(msg_Catalog_item, Port, int32_t),        "IPAddress",   NULL, 0},
    {0, 0, 64,   PT_STRI__SX(msg_Catalog_item, Password),             "Password",        NULL, 0},
        
    {0, 0, 1,    PT_SINT__SS(msg_Catalog_item, Status, int32_t),      "Status",  NULL, 0},
    {0, 0, 64,   PT_STRI__SX(msg_Catalog_item, Longitude),            "Longitude",    NULL, 0},
    {0, 0, 64,   PT_STRI__SX(msg_Catalog_item, Longitude),            "Longitude",    NULL, 0},   
    {0,0,0,XML_PT_NULL,"", NULL, 0}
};



/**设备状态查询请求*/
struct pdesc msg_devicestatus_rq[4] = {
    {0, 0, 32,   PT_STRI__SX(msg_DeviceStatus_rq, CmdType),  "CmdType",   NULL, 0},
    {0, 0, 32,   PT_STRI__SX(msg_DeviceStatus_rq, SN),       "SN",        NULL, 0},
    {0, 0, 64,   PT_STRI__SX(msg_DeviceStatus_rq, DeviceID), "DeviceID",  NULL, 0},
    {0,0,0,XML_PT_NULL,"", NULL, 0}
};
    
/**设备状态查询应答*/
struct pdesc msg_devicestatus_rp[14] = {
    {0, 0, 32,   PT_STRI__SX(msg_DeviceStatus_rp, CmdType),     "CmdType",      NULL, 0},
    {0, 0, 32,   PT_STRI__SX(msg_DeviceStatus_rp, SN),          "SN",           NULL, 0},
    {0, 0, 64,   PT_STRI__SX(msg_DeviceStatus_rp, DeviceID),    "DeviceID",     NULL, 0},
    {0, 0, 64,   PT_STRI__SX(msg_DeviceStatus_rp, Result),      "Result",       NULL, 0},
    {0, 0, 64,   PT_STRI__SX(msg_DeviceStatus_rp, Online),      "Online",       NULL, 0},
        
    {0, 0, 64,   PT_STRI__SX(msg_DeviceStatus_rp, Status),      "Status",       NULL, 0},
    {0, 0, 64,   PT_STRI__SX(msg_DeviceStatus_rp, Reason),      "Reason",       NULL, 0},
    {0, 0, 64,   PT_STRI__SX(msg_DeviceStatus_rp, Encode),      "Encode",       NULL, 0},
    {0, 0, 64,   PT_STRI__SX(msg_DeviceStatus_rp, Record),      "Record",       NULL, 0},
    {0, 0, 64,   PT_STRI__SX(msg_DeviceStatus_rp, DeviceTime),  "DeviceTime",   NULL, 0},
        
    {0, 0, 64,   PT_STRI__SX(msg_DeviceStatus_rp, Alarmstatus), "Alarmstatus",  NULL, 0},
    {0, 0, 1,    PT_SINT__SS(msg_DeviceStatus_rp, num, int32_t),"num",          NULL, 0},
    {0, 0, 1024, PT_STRI__SX(msg_DeviceStatus_rp, Info),        "Info",         NULL, 0},
    {0,0,0,XML_PT_NULL,"", NULL, 0}
};



/**设备配置查询请求*/
struct pdesc msg_configdownload_rq[5] = { 
    {0, 0, 32,   PT_STRI__SX(msg_ConfigDownload_rq, CmdType),    "CmdType",     NULL, 0},
    {0, 0, 32,   PT_STRI__SX(msg_ConfigDownload_rq, SN),         "SN",          NULL, 0},
    {0, 0, 64,   PT_STRI__SX(msg_ConfigDownload_rq, DeviceID),   "DeviceID",    NULL, 0},
    {0, 0, 32,   PT_STRI__SX(msg_ConfigDownload_rq, ConfigType), "ConfigType",  NULL, 0},
    {0,0,0,XML_PT_NULL,"", NULL, 0}
};




/**设备配置查询应答---BasicParam*/
struct pdesc msg_configdownload_basicparam_rp[8] = { 
    {0, 0, 32,   PT_STRI__SX(msg_ConfigDownload_BasicParam_rp, Name),                        "Name",                NULL, 0},
    {0, 0, 32,   PT_STRI__SX(msg_ConfigDownload_BasicParam_rp, Expiration),                  "Expiration",          NULL, 0},
    {0, 0, 1,    PT_SINT__SS(msg_ConfigDownload_BasicParam_rp, HeartBeatInterval, int32_t),  "HeartBeatInterval",   NULL, 0},
    {0, 0, 1,    PT_SINT__SS(msg_ConfigDownload_BasicParam_rp, HeartBeatCount, int32_t),     "HeartBeatCount",      NULL, 0},
    {0, 0, 1,    PT_SINT__SS(msg_ConfigDownload_BasicParam_rp, PositionCapability, int32_t), "PositionCapability",  NULL, 0},
        
    {0, 0, 32,   PT_STRI__SX(msg_ConfigDownload_BasicParam_rp, Longitude),                   "Longitude",           NULL, 0},
    {0, 0, 32,   PT_STRI__SX(msg_ConfigDownload_BasicParam_rp, Latitude),                    "Latitude",            NULL, 0},
    {0,0,0,XML_PT_NULL,"", NULL, 0}
};


/**设备配置查询应答---*/
struct pdesc msg_configdownload_videoparamopt_rp[3] = { 
    {0, 0, 32,   PT_STRI__SX(msg_ConfigDownload_VideoParamOpt_rp, DownloadSpeed),   "Name",                NULL, 0},
    {0, 0, 32,   PT_STRI__SX(msg_ConfigDownload_VideoParamOpt_rp, Resolution),      "Resolution",          NULL, 0},
    {0,0,0,XML_PT_NULL,"", NULL, 0}
};

/**设备配置查询应答*/
struct pdesc msg_configdownload_rp[7] = { 
    {0, 0, 32,   PT_STRI__SX(msg_ConfigDownload_rp, CmdType),    "CmdType",     NULL, 0},
    {0, 0, 32,   PT_STRI__SX(msg_ConfigDownload_rp, SN),         "SN",          NULL, 0},
    {0, 0, 64,   PT_STRI__SX(msg_ConfigDownload_rp, DeviceID),   "DeviceID",    NULL, 0},
    {0, 0, 8,    PT_STRI__SX(msg_ConfigDownload_rp, Result),     "Result",      NULL, 0},
    {0, 0, 1,    PT_STRU__SS(msg_ConfigDownload_rp, BasicParam,     msg_ConfigDownload_BasicParam_rp),       "BasicParam",     msg_configdownload_basicparam_rp, 0},
        
    {0, 0, 1,    PT_STRU__SS(msg_ConfigDownload_rp, VideoParamOpt,  msg_ConfigDownload_VideoParamOpt_rp), "VideoParamOpt",     msg_configdownload_videoparamopt_rp, 0},
    {0,0,0,XML_PT_NULL,"", NULL, 0}
};


/**设备控制应答*/
struct pdesc msg_devicecontrol_rp[5] = { 
    {0, 0, 32,   PT_STRI__SX(msg_DeviceControl_rp, CmdType),    "CmdType",     NULL, 0},
    {0, 0, 32,   PT_STRI__SX(msg_DeviceControl_rp, SN),         "SN",          NULL, 0},
    {0, 0, 64,   PT_STRI__SX(msg_DeviceControl_rp, DeviceID),   "DeviceID",    NULL, 0},
    {0, 0, 8,    PT_STRI__SX(msg_DeviceControl_rp, Result),     "Result",      NULL, 0},
    {0,0,0,XML_PT_NULL,"", NULL, 0}
};


/**设备控制-强制关键帧*/
struct pdesc msg_IFameCmd_rq[5] = { 
    {0, 0, 32,   PT_STRI__SX(msg_IFameCmd, CmdType),    "CmdType",     NULL, 0},
    {0, 0, 32,   PT_STRI__SX(msg_IFameCmd, IFameCmd),   "IFameCmd",    NULL, 0},
    {0, 0, 32,   PT_STRI__SX(msg_IFameCmd, SN),         "SN",          NULL, 0},
    {0, 0, 64,   PT_STRI__SX(msg_IFameCmd, DeviceID),   "DeviceID",    NULL, 0},
    {0,0,0,XML_PT_NULL,"", NULL, 0}
};

/**设备控制-强制关键帧*/
struct pdesc msg_PTZCmd_info_rq[2] = { 
    {0, 0, 1,    PT_SINT__SS(msg_PTZCmd_info, ControlPriority, int32_t), "ControlPriority",  NULL, 0},
    {0,0,0,XML_PT_NULL,"", NULL, 0}
};
struct pdesc msg_PTZCmd_rq[6] = { 
    {0, 0, 32,   PT_STRI__SX(msg_PTZCmd, CmdType),    "CmdType",     NULL, 0},
    {0, 0, 32,   PT_STRI__SX(msg_PTZCmd, SN),         "SN",          NULL, 0},
    {0, 0, 64,   PT_STRI__SX(msg_PTZCmd, DeviceID),   "DeviceID",    NULL, 0},
    {0, 0, 32,   PT_STRI__SX(msg_PTZCmd, PTZCmd),     "PTZCmd",      NULL, 0},
    {0, 0, 1,    PT_STRU__SS(msg_PTZCmd, Info,  msg_PTZCmd_info), "Info",     msg_PTZCmd_info_rq, 0},
        
    {0,0,0,XML_PT_NULL,"", NULL, 0}
};

/*_*/


